﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ISetting.cs" company="DevDigital">
//   DevDigital
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

namespace Settings.NET
{
    /// <summary>
    /// Setting information
    /// </summary>
    /// <typeparam name="TValue">The type of the value.</typeparam>
    public interface ISetting<out TValue>
    {
        /// <summary>
        /// Gets the key.
        /// </summary>
        /// <value>
        /// The key.
        /// </value>
        string Key { get; }

        /// <summary>
        /// Gets the value.
        /// </summary>
        /// <value>
        /// The value.
        /// </value>
        TValue Value { get; }

        /// <summary>
        /// Gets a value indicating whether this instance is in storage.
        /// </summary>
        /// <value>
        /// <c>true</c> if this instance is in storage; otherwise, <c>false</c>.
        /// </value>
        bool IsInStorage { get; }
    }
}